package com.fas.system.domain;

import com.fas.common.annotation.Excel;
import com.fas.common.core.domain.BaseEntity;
import com.fas.system.domain.vo.LongJsonDeserializer;
import com.fas.system.domain.vo.LongJsonSerializer;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.util.Date;
import java.util.List;

/**
 * 设施信息对象 fas_facilities
 *
 * @author ruoyi
 * @date 2022-05-05
 */
@ApiModel(value = "设施信息对象")
public class FasFacilities extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 序号 */
    @ApiModelProperty(value = "序号")
    private Long id;

    /** 设施名字 */
    @ApiModelProperty(value = "设施名字")
    private String facilityName;

    /** 设施编号 */
    @ApiModelProperty(value = "设施编号")
    @Excel(name = "设施编号",type = Excel.Type.EXPORT)
    private String facilityNumber;

    /** 所在位置 */
    @ApiModelProperty(value = "设施位置描述")
    @Excel(name = "位置描述")
    private String position;

    /** 公司名字 */
    @ApiModelProperty(value = "预留字段")
    @Excel(name = "合作单位名称",type = Excel.Type.EXPORT)
    private String companyName;

    /** 所属公司id */
    @ApiModelProperty(value = "所属公司id")
    private Long deptId;

    @ApiModelProperty(value = "建筑公司id")
    @Excel(name = "建筑公司编号",type = Excel.Type.IMPORT)
    private String buildingid;

//    @ApiModelProperty(value = "状态 0正常 1维修中")
    @Excel(name = "状态",readConverterExp = "0=正常,1=维修中")
    private String status;

    @ApiModelProperty(value = "设施类型（设施类型（sys_dict_type表中的 facilities_type））")
    @Excel(name = "设施类型",type = Excel.Type.IMPORT)
    private Integer facilityType;

    @ApiModelProperty(value = "设施型号")
    private String facilitymodel;

    @ApiModelProperty(value = "建筑名称")
    private String buildingname;

    @ApiModelProperty(value = "建筑地址")
    private String address;

    @ApiModelProperty(value = "部门名称")
    private String deptname;

    @ApiModelProperty(value = "楼层")
    @Excel(name = "楼层")
    private Integer floor;

//    @ApiModelProperty(value = "设施分布，室内或者室外（0：室内，1：室外）")
    @Excel(name = "设施分布",readConverterExp = "0=室内,1=室外")
    private Integer facilitiesDistribution;

    @ApiModelProperty(value = "所属线路")
    @JsonSerialize(using = LongJsonSerializer.class)
    @JsonDeserialize(using = LongJsonDeserializer.class)
    private Long belongRoute;

/////////////非表字段///////////////////

    @ApiModelProperty(value = "最近检查日期")
    @Excel(name = "最近检查日期",dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8",shape = JsonFormat.Shape.STRING)
    private Date latelyInspectionDate;

    @ApiModelProperty(value = "规格数量")
    @Excel(name = "规格")
    private Integer facilitySpecNum;

    @ApiModelProperty(value = "规格列表")
    private List<FasFacilitiesSpec> fasFacilitiesSpecs;

    @ApiModelProperty(value = "设施类型名称")
    @Excel(name = "设施类型名称")
    private String facilityTypeName;

    private String condition;
    @Excel(name = "所属路线名称")
    private String belongRouteName;//所属路线名称
    @Excel(name = "合作单位编号",type = Excel.Type.IMPORT)
    private Integer cooperationCompanyId;


    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getFacilityName() {
        return facilityName;
    }

    public void setFacilityName(String facilityName) {
        this.facilityName = facilityName;
    }

    public String getFacilityNumber() {
        return facilityNumber;
    }

    public void setFacilityNumber(String facilityNumber) {
        this.facilityNumber = facilityNumber;
    }

    public String getPosition() {
        return position;
    }

    public void setPosition(String position) {
        this.position = position;
    }

    public String getCompanyName() {
        return companyName;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

    public Long getDeptId() {
        return deptId;
    }

    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }

    public String getBuildingid() {
        return buildingid;
    }

    public void setBuildingid(String buildingid) {
        this.buildingid = buildingid;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public Integer getFacilityType() {
        return facilityType;
    }

    public void setFacilityType(Integer facilityType) {
        this.facilityType = facilityType;
    }

    public String getFacilitymodel() {
        return facilitymodel;
    }

    public void setFacilitymodel(String facilitymodel) {
        this.facilitymodel = facilitymodel;
    }

    public String getBuildingname() {
        return buildingname;
    }

    public void setBuildingname(String buildingname) {
        this.buildingname = buildingname;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getDeptname() {
        return deptname;
    }

    public void setDeptname(String deptname) {
        this.deptname = deptname;
    }

    public Integer getFloor() {
        return floor;
    }

    public void setFloor(Integer floor) {
        this.floor = floor;
    }

    public Integer getFacilitiesDistribution() {
        return facilitiesDistribution;
    }

    public void setFacilitiesDistribution(Integer facilitiesDistribution) {
        this.facilitiesDistribution = facilitiesDistribution;
    }

    public Date getLatelyInspectionDate() {
        return latelyInspectionDate;
    }

    public void setLatelyInspectionDate(Date latelyInspectionDate) {
        this.latelyInspectionDate = latelyInspectionDate;
    }

    public Long getBelongRoute() {
        return belongRoute;
    }

    public void setBelongRoute(Long belongRoute) {
        this.belongRoute = belongRoute;
    }

    public Integer getFacilitySpecNum() {
        return facilitySpecNum;
    }

    public void setFacilitySpecNum(Integer facilitySpecNum) {
        this.facilitySpecNum = facilitySpecNum;
    }

    public List<FasFacilitiesSpec> getFasFacilitiesSpecs() {
        return fasFacilitiesSpecs;
    }

    public void setFasFacilitiesSpecs(List<FasFacilitiesSpec> fasFacilitiesSpecs) {
        this.fasFacilitiesSpecs = fasFacilitiesSpecs;
    }

    public String getFacilityTypeName() {
        return facilityTypeName;
    }

    public void setFacilityTypeName(String facilityTypeName) {
        this.facilityTypeName = facilityTypeName;
    }

    public String getCondition() {
        return condition;
    }

    public void setCondition(String condition) {
        this.condition = condition;
    }

    public String getBelongRouteName() {
        return belongRouteName;
    }

    public void setBelongRouteName(String belongRouteName) {
        this.belongRouteName = belongRouteName;
    }

    public Integer getCooperationCompanyId() {
        return cooperationCompanyId;
    }

    public void setCooperationCompanyId(Integer cooperationCompanyId) {
        this.cooperationCompanyId = cooperationCompanyId;
    }
}
